관계형 데이터베이스, RDBMS에서 데이터를 불러올 때 데이터의 크기와 시작점을 정하는 방법을 알아봅니다. 만약 테이블에서 불러올 데이터 크기를 줄여야한다면... 아니면 불러올 값의 시작점을 다르게해야한다면 어떻게할까요?
게시판을 예로 들면
게시글 총 수가 1,000개라면 전체를 한페이지에 출력하기 어려우므로 약 15개 또는 20개 정도의 글이 적당할 수 있죠. 즉 페이지네이션에 필요한 정보를 제공해야하는데 이때 쿠ㅏ리문에 설정하는 값을 알아보려합니다.
! 모두 불러온 후 클라이언트에서 처리할 수는 없는가
물론 가능합니다. 다만 모든 글을 인덱스하여 가져와야하고 이를 함꺼번 처리하는 것도 부담이죠. 또 데이터베이스가 아닌 서버스크립트 언어 asp, jsp, .net에서도 처리 가능합니다. 하지만 쿼리문에서 불러올 개수를 정하는 것이 더 효과적인 방법일 것입니다.
일단, 쿼리문으로 불러올 데이터 개수를 정할 때는
LIMIT 키워드를 사용합니다. 이
LIMIT는 두 가지 옵션값을 설정 가능하죠.
!! LIMT 예제보기
1) LIMIT 10
SELECT * FROM table_name WHERE site="webisfree.com" LIMIT 10;
; 반환되는 개수만 정하는 경우로 위의 경우 반환개수를 10개로 합니다.
2) LIMIT 0, 20
SELECT * FROM table_name WHERE site="rankingis.com" LIMIT 0, 20;
; 이렇게 두개의 숫자를 콤마를 사용하여 표기할 경우 앞의 숫자는
시작위치를 나타내고 다음의 숫자는 나타낼
데이터 개수를 말합니다. 즉, 20개의 데이터를 반환하되 0번째 부터 반환하게 됩니다.